package com.zsrt.day20170413.pm.reflect;

import org.junit.Test;

/**
*@author jzh
*@创建时间 2017年4月13日下午7:39:23
*类说明：        类是程序的一部分，每个类都有一个Class对象
*        Class没有公共构造方法，Class对象是加载类时由Java虚拟机以及通过类  加载器中的方法自动构造的，因此不能显式的申明Class对象
*        java.lang.Class类是Java反射机制的起源。要想操纵类中的属性、方法，都必须从获取Class Object开始
*/
public class GetClassTest {
	/**
	 * 总结：
	 * 一般我们到底使用谁呢?
 	 * 开发	第三种
     * 因为第三种是一个字符串，而不是一个具体的类名。
     * 可以把这样的字符串配置到配置文件中提高灵活性
	 */
	@Test
	public void reflectTest() throws ClassNotFoundException{
		Person p1=new Person();
		Class class1 = p1.getClass();
		Person p2=new Person();
		Class class2 = p1.getClass();
		System.out.println(class1==class2);
		
		Class class3=Person.class;
		System.out.println(class1==class3);
		
		Class class4=Class.forName("com.zsrt.day20170413.pm.reflect.Person");
		System.out.println(class1==class4);
		
	}

}
